//#include <stdio.h>
//#include <stdlib.h>
//#include <time.h>
//const char *file_name="data3.txt";
//
//
//#define MAX_N 10000
//int arr[MAX_N+5],n=0;
//void output_arr(int* arr,int n)
//{
//	for(int i=0;i<n;i++){
//		printf("%d ",arr[i]);
//	}
//	printf("\n");
//}
//void output_to_file(int* arr,int n){
//	
//	FILE *fp=fopen(file_name,"a");
//	for(int i=0;i<n;i++)
//	{
//		fprintf(fp,"%d",arr[i]);
//	}
//	fclose(fp);
//}
//int read_from_file(int *arr)
//{
//	int i=0;
//	FILE*fp=fopen(file_name,"r");
//	if(fp==NULL)
//	{
//		return 0;
//	}
//	while(fscanf(fp,"%d",arr+i)!=EOF)
//		i+=1;
//	fclose(fp);
//	return i;
//}
//void clear_file()
//{
//	FILE *fp=fopen(file_name,"w");
//	fclose(fp);
//}
//int output_test()
//{
//	srand(time(0));
//	for(n=0;n<10;n++)
//		arr[n]=rand()%100;	
//	output_arr(arr,n);
//	output_to_file(arr,n);   //封装成函数，减少记忆负担，避免相互影响
//	return 0;
//}
//
//int read_test()
//{
//	n=read_from_file(arr);
//	output_arr(arr,n);
//	printf("total number is %d",n);
//	return 0;
//}
//int main()
//{
//	clear_file();
//	return 0;
//}


//#include <stdio.h>
//double n;
//double average(double n)
//{
//	double i=0,j=0;
//	for(i=1;i<n;i++)
//		j+=1/i;
//	return j;
//}
//double sum(double n)
//{
//	double i=0,j=0;
//	for(i=1;i<n;i++)
//		j+=i;
//	return j/(n-1);
//}
//int main()
//{
//	scanf("%lf",&n);
//	double ave=0,all=0;
//	ave=average(n);
//	all=sum(n);
//	printf("倒数和%.2f,平均值%.2f",ave,all);
//	return 0;
//}

#include <stdio.h>
void func(int m,int n)
{
	int i,j,k,p;
	for(p=m;p<=n;p++)
	{
		i=p%10;
		j=p/10%10;
		k=p/100;
		if(p==(i*i*i+j*j*j+k*k*k))
			printf("%d ",p);
	}
}
int main()
{
	int m,n;
	scanf("%d,%d",&m,&n);
	func(m,n);
	return 0;
}
